/*******************************************************************************
* Copyright (c) 2004, 2014 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Jeanderson Candido <http://jeandersonbc.github.io> - Bug 444070
*******************************************************************************/
package org.eclipse.ui.tests.themes;
import java.util.Arrays;
import org.eclipse.e4.ui.css.swt.theme.IThemeEngine;
import org.eclipse.ui.tests.harness.util.UITestCase;
import org.eclipse.ui.themes.ITheme;
import org.eclipse.ui.themes.IThemeManager;
/**
* @since 3.0
*/
public abstract class ThemeTest extends UITestCase {
private static final String MOCK_CSS_THEME = "org.eclipse.e4.ui.css.theme.mock";
protected static final String BOGUSID = "BOGUSID";
protected static final String THEME1 = "theme1";
public static void assertArrayEquals(Object[] datas, Object[] datas2) {
if (!Arrays.equals(datas, datas2)) {
String expected = formatArray(datas);
String actual = formatArray(datas2);
fail("expected:<" + expected + "> but was:<" + actual + ">");
}
}
protected static String formatArray(Object[] datas) {
StringBuffer buffer = new StringBuffer();
if (datas == null) {
buffer.append("null");
} else {
buffer.append('[');
for (int i = 0; i < datas.length; i++) {
buffer.append(datas[i]);
if (i != datas.length - 1) {
buffer.append(',');
}
}
}
return buffer.toString();
}
protected IThemeManager fManager;
/**
* @param testName
*/
public ThemeTest(String testName) {
super(testName);
// TODO Auto-generated constructor stub
}
@Override
protected void doSetUp() throws Exception {
super.doSetUp();
fManager = fWorkbench.getThemeManager();
fManager.setCurrentTheme(IThemeManager.DEFAULT_THEME);
mockCSSTheme();
}
private void mockCSSTheme() {
IThemeEngine themeEngine = fWorkbench.getService(IThemeEngine.class);
org.eclipse.e4.ui.css.swt.theme.ITheme currentTheme = themeEngine.getActiveTheme();
if (currentTheme != null && !MOCK_CSS_THEME.equals(currentTheme.getId())) {
themeEngine.setTheme(MOCK_CSS_THEME, false);
}
}
/**
* @return
*/
protected ITheme getDefaultTheme() {
ITheme defaultTheme = fManager.getTheme(IThemeManager.DEFAULT_THEME);
assertNotNull(defaultTheme);
return defaultTheme;
}
/**
* @return
*/
protected ITheme getTheme1() {
ITheme theme1 = fManager.getTheme(THEME1);
assertNotNull(theme1);
return theme1;
}
}